import request from '@/utils/request';
import type { BaseBeanModel, ResponsePageData, ResponseBaseData, QueryParamModel } from '@/api/model/baseModel';

const basePath = '/bpm/event';
/** Java类中含有的属性或方法中传递的参数表 */
export interface BpmClassPropertiesDto extends BaseBeanModel {
  /** BPM_CLASS或BPM_CLASS_METHOD表主键 */
  thirdPartyDbid?: string;
  /** 属性种类(field或arg) */
  sort?: string;
  /** 属性名 */
  name?: string;
  /** 属性类型 */
  type?: string;
  /** 属性默认值 */
  initExpr?: string;
  /** 备注 */
  remark?: string;
  /** 排序 */
  orderBy?: number;
  /** 主表id */
  dbid?: string;
}

/**
 * 获取主表分页数据
 * @param param 表格参数
 * @returns 表格数据
 */
export function listBpmClassPropertiesByPage(param: QueryParamModel): Promise<ResponsePageData<BpmClassPropertiesDto>> {
  return request.post(`${basePath}/getBpmClassPropertiesListByPage/v1`, param);
}

/**
 * 根据id加载数据
 * @param id 选中数据id
 */
export function getBpmClassProperties(id: string): Promise<ResponseBaseData<BpmClassPropertiesDto>> {
  return request.get(`${basePath}/getBpmClassProperties/v1?id=${id}`);
}

/**
 * 保存表单数据
 * @param form 表单数据
 */
export function saveBpmClassProperties(form: BpmClassPropertiesDto): Promise<ResponseBaseData<any>> {
  return request.post(`${basePath}/addBpmClassProperties/v1`, form);
}

/**
 * 编辑表单数据
 * @param form 表单数据
 */
export function updateBpmClassProperties(form: BpmClassPropertiesDto): Promise<ResponseBaseData<any>> {
  return request.post(`${basePath}/updateBpmClassProperties/v1`, form);
}

/**
 * 根据id集合删除数据
 * @param ids 选中的数据集合id
 */
export function delBpmClassProperties(ids: string[]): Promise<ResponseBaseData<any>> {
  return request.post(`${basePath}/delBpmClassProperties/v1?ids=${ids}`);
}
